

using System;
using System.Text;

using NHibernate;
using NHibernate.Cfg;
using NHibernate.Criterion;
using NHibernate.Exceptions;

using SpotifyGenNHibernate.EN.Spotify;
using SpotifyGenNHibernate.CAD.Spotify;

namespace SpotifyGenNHibernate.CEN.Spotify
{
        public partial class AlbumCEN
        {
        private IAlbumCAD _IAlbumCAD;

        public AlbumCEN(IAlbumCAD _IAlbumCAD)
        {
                this._IAlbumCAD = _IAlbumCAD;
        }

        public int New_ (String p_nombre, String p_portada, Nullable<DateTime> p_fechaPublicacion, bool p_destacado, System.Collections.Generic.IList<int> p_canciones, String p_attribute)
        {
                AlbumEN albumEN = null;
                int oid;

                //Initialized AlbumEN
                albumEN = new AlbumEN ();
                albumEN.Nombre = p_nombre;
                albumEN.Portada = p_portada;
                albumEN.FechaPublicacion = p_fechaPublicacion;
                albumEN.Destacado = p_destacado;
                if (p_canciones != null) {
                        albumEN.Canciones = new System.Collections.Generic.List<SpotifyGenNHibernate.EN.Spotify.CancionEN>();
                        foreach (int item in p_canciones) {
                                SpotifyGenNHibernate.EN.Spotify.CancionEN en = new SpotifyGenNHibernate.EN.Spotify.CancionEN ();
                                en.Id = item;
                                albumEN.Canciones.Add (en);
                        }
                }
                albumEN.Attribute = p_attribute;
                //Call to AlbumCAD

                oid = _IAlbumCAD.New_ (albumEN);
                return oid;
        }

        public void Destroy (int id)
        {
                _IAlbumCAD.Destroy (
                        id

                        );
        }

        public void Editar (int p_Album_OID, String p_nombre, String p_portada, Nullable<DateTime> p_fechaPublicacion, bool p_destacado, String p_attribute)
        {
                AlbumEN albumEN = null;

                //Initialized AlbumEN
                albumEN = new AlbumEN ();
                albumEN.Id = p_Album_OID;
                albumEN.Nombre = p_nombre;
                albumEN.Portada = p_portada;
                albumEN.FechaPublicacion = p_fechaPublicacion;
                albumEN.Destacado = p_destacado;
                albumEN.Attribute = p_attribute;
                //Call to AlbumCAD

                _IAlbumCAD.Editar (albumEN);
        }

        public System.Collections.Generic.IList<AlbumEN> Consultar (int first, int size)
        {
                System.Collections.Generic.IList<AlbumEN> list = null;

                list = _IAlbumCAD.Consultar (first, size);
                return list;
        }
        public System.Collections.Generic.IList<AlbumEN> Buscar (int p_oid)
        {
                return _IAlbumCAD.Buscar (p_oid);
        }
        public System.Collections.Generic.IList<AlbumEN> ObtenerCanciones (int p_oid)
        {
                return _IAlbumCAD.ObtenerCanciones (p_oid);
        }
        }
}
